Wireless devices, such as cellular telephones, communicate packets including voice and data over a wireless network. Wireless devices are being manufactured with increased computing capabilities and are becoming tantamount to personal computers. These “smart” wireless devices, such as cellular telephones, have installed application programming interfaces (“APIs”) onto their local computer platform that allow software developers to create software applications that operate on the cellular telephone. The API sits between the wireless device system software and the software application, making the cellular telephone functionality available to the application without requiring the software developer to have the specific cellular telephone system source code.
The software applications can come pre-loaded at the time the cellular telephone is manufactured, or the user may later request that additional programs be downloaded over cellular telecommunication carrier networks, where the programs are executable on the wireless telephone. As a result, users of wireless telephones can customize their cellular telephones with programs, such as games, printed media, stock updates, news, or any other type of information or program available for download through the wireless network. Each of these software applications normally requires a license for the user to legally use the software on the wireless device.
If a license is meant to limit the use of the software application to a finite duration, such as a specific number of days of use, then once the license expires, a user of the wireless device must typically either download a new license to incorporate into the software application, or reinstall the entire software application if further use of the application is desired. The wireless device API normally checks the software either at the time execution is requested or at some other period to determine if the software is licensed for use on the platform. If the license has expired, then the wireless device will not execute the unlicensed software application. Thus, these types of licensing schemes rely on the wireless device having an accurate date/time setting in order to determine whether or not a license has expired.
In some networks, however, the date/time in the wireless device may not be established in a trustworthy fashion, thereby making time-based licensing decisions difficult or impossible. For example, some communication systems/protocols, such as GSM (Global System for Mobile Communications), TDMA (Time Division Multiple Access) and UMTS (Universal Mobile Telecommunications System), do not require time to be synchronized between the wireless device and the wireless network. As such, the date/time setting on the wireless device may be a setting input by a user of the device, or may be obtained from some other time service, such as NTP (Network Time Protocol). In any case, the API, or other logic on the wireless device responsible for determining the expiration of a time-based license, cannot verify the authenticity of the time/date setting on the wireless device in these systems.
Accordingly, it would be advantageous to provide a system that enables reliable time-based licensing decisions to be made on wireless devices operating on wireless networks that do not require time synchronization with the wireless device.